package GUI;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.Scanner;

import ClassesBasicas.Historico;
import ClassesBasicas.ITipoPessoa;
import ClassesBasicas.Paciente;
import Excecao.PessoaInexistenteException;
import Negocio.Fachada;

public class MenuCadastroHistorico implements ITipoPessoa {
	public static void telaPaciente() throws PessoaInexistenteException{

		Scanner opcao = new Scanner(System.in);
		int op;
		do {
		System.out.println("                                             __________________________________________________________");
		System.out.println("");
		System.out.println("                                                        # SISTEMA DE PRONTUARIO ELETRONICO #");
		System.out.println("                                             __________________________________________________________");
		System.out.println("");
		System.out.println("");
		System.out.println("                                                               MENU CADASTRO HISTORICO");
		System.out.println("");
		System.out.println("                                                      Inserir..................................1");
		System.out.println("                                                      Consultar................................2");
		System.out.println("                                                      Voltar...................................0");
		System.out.println("");
		System.out.println("");
		System.out.print("                                                     > Selecione sua opcao:");
		op = opcao.nextInt();
		if (op ==1){
			inserirHistorico();
		}else if (op == 2){
			consultarHistorico();
		}else{
			System.out.println("                                                   Opcao Invalida! Favor Digitar Novamente.");
		}
		}while (op!=0);
	}
	
	@SuppressWarnings("deprecation")
	public static void inserirHistorico() throws PessoaInexistenteException{
		Scanner opcao = new Scanner(System.in);
		System.out.println("                                             __________________________________________________________");
		System.out.println("");
		System.out.println("                                                        # SISTEMA DE PRONTUARIO ELETRONICO #");
		System.out.println("                                             __________________________________________________________");
		System.out.println("");
		System.out.println("");
		System.out.println("                                                                      INSERIR");
		System.out.println("");
		System.out.print("                                                            CPF do Paciente Referente:");
		String cpf = opcao.nextLine();
		System.out.print("                                                            Evolucao:");
		String evolucao = opcao.nextLine();
		System.out.print("                                                            Data:");
		String data = opcao.nextLine();
		
		int dia = Integer.parseInt(data.substring(0,2));
		int mes = Integer.parseInt(data.substring(2,4));
		int ano = Integer.parseInt(data.substring(4,8));
			
		Date date = new Date();
		date.setDate(dia);
		date.setMonth(mes);
		date.setYear(ano);
		
		Paciente paciente = (Paciente) Fachada.obterInstancia().procurar(cpf, PACIENTE);
		Historico historico = new Historico();
		historico.setData(date);
		historico.setEvolucao(evolucao);
		historico.setPaciente(paciente);
		
		Fachada.obterInstancia().inserirHistoricos(historico);
	}
	
	public static void consultarHistorico(){
		Scanner opcao = new Scanner(System.in);
		System.out.println("                                             __________________________________________________________");
		System.out.println("");
		System.out.println("                                                        # SISTEMA DE PRONTUARIO ELETRONICO #");
		System.out.println("                                             __________________________________________________________");
		System.out.println("");
		System.out.println("");
		System.out.println("                                                                     CONSULTAR");
		System.out.println("");
		System.out.print("                                                            Digite o cpf do Paciente:");
		String cpf = opcao.nextLine();

		try {
			Fachada.obterInstancia().procurar(cpf, PACIENTE);
			Collection<Historico> colecao = new ArrayList<Historico>();
			colecao = Fachada.obterInstancia().consultarHistoricos(cpf);
			for(Historico h : colecao){
				System.out.println("");
				System.out.println("");
				System.out.println("												Sequencial: "+h.getSequencial());
				System.out.println("												Evolucao: "+h.getEvolucao());
				System.out.println("												Data: "+h.getData());
			}			
		} catch (PessoaInexistenteException e) {
			e.getMessage();
		}
	}
}
